秀丸エディタ・HmCustomLivePreviewのカスタム 入門編概要ここでは、具体的なカスタムの例を手順を追って説明します。 HmCustomLivePreviewHr.mac作成まずは、HmCustomLivePreviewDefault.macをコピーし、HmCustomLivePreviewHr.macを作成してください。 今回は「HmCustomLivePreviewHr.mac」という名前でコピーしたものとしましょう。 HmCustomLivePreviewは、hmJSと同じ機能を持っているHmCustomLivePreviewの動作のカスタマイズは、原則的には、 エラーがあった場合デバッグメッセージのページにあるように、秀丸デバッグ出力モニターによって確認することとなります。 はじめての「HmCustomLivePreviewHr.mac」編集原則的には、「DoString」中の「OnCustomTranslateHTML(...)」関数の中身を編集することになります。 考えることはすごく単純です 秀丸エディタ上のテキスト文字列が、引数として渡ってくるので、
といった形となります。 #dll = loaddll( currentmacrodirectory + @"\HmCustomLivePreview.dll" ); if (!#dll) { message("NO"); endmacro; } #_ = dllfuncw( #dll, "DoString", R"JSCRIPT( function OnCustomTranslateHTML(filename, rawtext) { // そのまま受け取って… var htmltext = rawtext; // そのまま返す return htmltext; } )JSCRIPT" ); #_ = dllfuncw( #dll, "Show", hidemaruhandle(0) ); これをHmCustomLivePreviewで見てみると、下図のようになります。 そう、HTMLはテキスト上での「改行やタブや1つ以上のスペース」は、 HTMLを記述したことがあれば、誰もが体験していることでしょう。 この状態で秀丸上のテキストをいろいろと編集してみてください!! HmCustomLivePreviewを一度閉じましょう。 超簡易HTMLエンコーダさて、とりあえず、最低限編集しているテキストに近い形の見た目とするため、 現在編集しているテキストを、HTMLで似たような見た目にするためには、 今回は、「---」という文字列を見かけると水平線となる「<hr>」に変換する、という処理も入れてみましょう。 #dll = loaddll( currentmacrodirectory + @"\HmCustomLivePreview.dll" ); if (!#dll) { message("NO"); endmacro; } #_ = dllfuncw( #dll, "DoString", R"JSCRIPT( function OnCustomTranslateHTML(filename, rawtext) { var htmltext = rawtext; // まず、タグになってしまわないように、<や>を最初に処理 htmltext = htmltext.replace( /</g, "<"); htmltext = htmltext.replace( />/g, ">"); // 改行は<br>にしておく htmltext = htmltext.replace( /\n/g, "<br>"); // 「---」を見つけると、全て「<hr>」に変換する htmltext = htmltext.replace(/---/g, "<hr>" ); // 変換した文字列全体をかえす return htmltext; } )JSCRIPT" ); #_ = dllfuncw( #dll, "Show", hidemaruhandle(0) ); 最低限、この程度やっておけば、そこそこな感じでしょう。 これをHmCustomLivePreviewで見てみると、下図のようになります。 |